﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using WSProyecto.Persistencia;
using WSProyecto.Dominio;

namespace WSProyecto
{
    public class Detalle_Proyecto : IDetalle_Proyecto
    {
        private Detalle_Proyecto_DAO detalle_proyecto_DAO = null;
        private Detalle_Proyecto_DAO Detalle_Proyecto_DAO
        {
            get
            {
                if (detalle_proyecto_DAO == null)
                    detalle_proyecto_DAO = new Detalle_Proyecto_DAO();
                return detalle_proyecto_DAO;
            }
        }

        private ProyectoDAO proyectoDAO = null;
        private ProyectoDAO ProyectoDAO
        {
            get
            {
                if (proyectoDAO == null)
                    proyectoDAO = new ProyectoDAO();
                return proyectoDAO;
            }
        }
        
        private ClienteDAO clienteDAO = null;
        private ClienteDAO ClienteDAO
        {
            get
            {
                if (clienteDAO == null)
                    clienteDAO = new ClienteDAO();
                return clienteDAO;
            }
        }

        private PerfilDAO perfilDAO = null;
        private PerfilDAO PerfilDAO
        {
            get
            {
                if (perfilDAO == null)
                    perfilDAO = new PerfilDAO();
                return perfilDAO;
            }
        }

        private GradoDAO gradoDAO = null;
        private GradoDAO GradoDAO
        {
            get
            {
                if (gradoDAO == null)
                    gradoDAO = new GradoDAO();
                return gradoDAO;
            }
        }
        

        public detalle_proyecto CrearDetalleProyecto(int codpro, int codcli, int codper, int codgra, int cantidad)
        {
            proyecto proyectoExistente = ProyectoDAO.Obtener(codpro);
            cliente clienteExistente = ClienteDAO.Obtener(codcli);
            perfil perfilExistente = PerfilDAO.Obtener(codper);
            grado gradoExistente = GradoDAO.Obtener(codgra);

            detalle_proyecto detalleproyectoACrear = new detalle_proyecto()
            {
                cod_pro = proyectoExistente,
                cod_cli = clienteExistente,
                cod_per = perfilExistente,
                cod_gra = gradoExistente,
                can_det = cantidad
            };
            return Detalle_Proyecto_DAO.Crear(detalleproyectoACrear);
        }

        public detalle_proyecto ObtenerDetalleProyecto(int codigo)
        {
            throw new NotImplementedException();
        }

        public detalle_proyecto ModificarDetalleProyecto(int codigo, int codpro, int codcli, int codper, int codgra, int cantidad)
        {
            throw new NotImplementedException();
        }

        public detalle_proyecto EliminarDetalleProyecto(int codigo)
        {
            throw new NotImplementedException();
        }
    }
}
